Structured Program Generation Techniques
نویسندگان
چکیده
So, you can write a program that generates other programs. Sorry, . . . not impressed. You want to impress me? Make sure your program-generating program only produces well-formed programs. What is “well-formed”, you ask? Well, let’s start with “it parses”. Then let’s get to “. . . and type-checks”. You want to really impress me? Give me an expressive language for program generators in which any program you write will only generate well-formed programs. In this briefing, we will sample the state-of-the-art in program generation relative to the above important goal. If we want to establish program generation as a general-purpose, disciplined methodology, instead of an ad hoc hack, we should be able to check the generator once and immediately validate the well-formedness of anything it might generate. This is a modular safety property for meta-programs, much akin to static typing for regular programs. Some of the emphasis will be on our own work on “class morphing” (or just “morphing”): the statically-safe adaptation of the contents of a class, depending on other classes supplied as parameters. Along the way, lots of other techniques will be discussed and contrasted, from different template facilities, to syntactically-safe program generation, to program staging techniques.
منابع مشابه
Test Data Generation Based on Test Path Discovery Using Intelligent Water Drop
Automatic test data generation is required to generate test cases dynamically for a specific software program. Manual generation of test data is too tedious and a time consuming task. This paper proposes a technique using Intelligent Water Drop (IWD) for automatic generation of test data. Correctly generated test data helps in reducing the effort while testing the software. This paper discusses...
متن کاملAdaptation of Structured Grid for Supersonic and Transonic Flows
Two distinct redistribution grids - adaptation techniques, spring analogy and elliptic grid generator are applied to two-dimensional steady, inviscid, shocked flows, and the ability of each technique is examined and compared. Euler equations are solved base on Roe's Reimann solver approach to simulate supersonic flow around a sphere, transonic flow about an airfoil and supersonic flow in a symm...
متن کاملReal Time Control For Interactive Computer Music and Animation
Real-time systems are commonly regarded as the most complex form of computer program due to parallelism, the use of special purpose input/output devices, and the fact that time-dependent errors are hard to reproduce. Several practical techniques can be used to limit the complexity of implementing realtime interactive music and animation programs. The techniques are: (1) a program structure in w...
متن کاملDynamic Course Generation
This paper presents an approach and architecture for Dynamic Course Generation, based on applying AI planning techniques to a structured representation of the domain knowledge and allowing explicit representation of teaching expertise. An individual course is generated automatically for a given teaching goal and is dynamically adapted at run time to the student's individual progress and prefere...
متن کاملAn advanced environment supporting structured parallel programming in Java
In this work we present Lithium, a pure Java structured parallel programming environment based on skeletons (common, reusable and efficient parallelism exploitation patterns). Lithium is implemented as a Java package and represents both the first skeleton based programming environment in Java and the first complete skeleton based Java environment exploiting macro-data flow implementation techni...
متن کامل